home *** CD-ROM | disk | FTP | other *** search
/ PC World 2008 February (DVD) / PCWorld_2008-02_DVD.iso / v cisle / msd / MSDaRT50Eval.msi / MSDART.cab / MSDaRT.chm / local / opk.script.js < prev    next >
Encoding:
Text File  |  2007-03-08  |  23.4 KB  |  1,253 lines

  1. window.onload=LoadPage;
  2. window.onunload=Window_Unload;
  3. window.onresize=ResizeWindow;
  4. window.onbeforeprint = set_to_print;
  5. window.onafterprint = reset_form;
  6.  
  7. var vbDeclaration;
  8. var vbUsage;
  9. var csLang;
  10. var cLang;
  11. var jsharpLang;
  12. var jsLang;
  13.  
  14. var scrollPos = 0;
  15.  
  16. var inheritedMembers;
  17. var protectedMembers;
  18. var netcfMembersOnly;
  19.  
  20.  
  21. /*    
  22. **********
  23. **********   Begin
  24. **********
  25. */
  26.  
  27. function LoadPage()
  28. {
  29.  
  30.     if(IsEvilUrl())
  31.     {
  32.         ReloadEvilUrlAsGoodUrl();
  33.         return;    // in just a moment, page will reload.
  34.     }
  35.     
  36.     
  37.     // show correct language
  38.     LoadLanguages();
  39.     LoadMembersOptions();
  40.     
  41.     Set_up_checkboxes();
  42.     
  43.     DisplayLanguages();
  44.     
  45.     if(inheritedMembers=="off")
  46.         DisplayInheritedMembers();
  47.     if(protectedMembers=="off")
  48.         DisplayProtectedMembers();
  49.     if(netcfMembersOnly=="on")
  50.         DisplayNETCFMembers();
  51.         
  52.     ChangeMembersOptionsFilterLabel();
  53.     
  54.     LoadSections();
  55.  
  56.     ResizeWindow();
  57.     
  58.     // vs70.js did this to allow up/down arrow scrolling, I think
  59.     try { mainSection.setActive(); } catch(e) { }
  60.  
  61.     // make body visible, now that we're ready to render
  62.     document.body.style.display = "";
  63.     
  64.     //set the scroll position
  65.     try{mainSection.scrollTop = scrollPos;}
  66.     catch(e){}
  67.  
  68.     //call to function to populate feedback links with page title
  69.     populateFbLink();
  70. }
  71.  
  72. function Window_Unload()
  73. {
  74.     if(IsGoodUrl())
  75.     {
  76.         // save persistable data (except when unloading from a "bad url")
  77.         SaveLanguages();
  78.         SaveMembersOptions();
  79.         SaveSections();
  80.     }
  81. }
  82.  
  83.  
  84. // populateFbLink
  85. // populates feedback links with CHM name and page title
  86. function populateFbLink()
  87. {    
  88.     allAnchors = document.anchors;
  89.     docLocation = document.URL;
  90.     thisChmName = "";
  91.     
  92.     //checks for directory seperator chars and creates new pattern accordingly
  93.     if(docLocation.indexOf("\\") > -1)
  94.     {
  95.         chmRegEx = new RegExp("^.*\\\\(.*?)::/.*$","i");
  96.         chmRegEx.exec(docLocation);
  97.         thisChmName = RegExp.$1;
  98.     }
  99.  
  100.     
  101.     //formats chm name if it has valid data (i.e.  that would be in a CHM name)
  102.     if(thisChmName.match("\\w","i"))
  103.     {
  104.         thisChmName = thisChmName.toLowerCase() + "\\";
  105.     }
  106.     else
  107.     {
  108.         thisChmName = "";
  109.     }
  110.     
  111.     //checks for fblink type anchors and applies feedback string
  112.     for(i=0;i<allAnchors.length;i++)
  113.     {
  114.         if(allAnchors[i].id == "fbLink")
  115.         {
  116.             allAnchors[i].href = allAnchors[i].href + "?subject=FEEDBACK: " + thisChmName + document.title;
  117.         }
  118.     }
  119. }
  120.  
  121.  
  122. function ResizeWindow()
  123. {
  124. /*
  125.     if (document.body.clientWidth==0) return;
  126.     var header = document.all.item("header");
  127.     var mainSection = document.all.item("mainSection");
  128.     if (mainSection == null) return;
  129.     
  130.     
  131.     document.body.scroll = "no"
  132.     mainSection.style.overflow= "auto";
  133.     header.style.width= document.body.offsetWidth - 2;
  134.     //mainSection.style.paddingRight = "20px"; // Width issue code
  135.     mainSection.style.width= document.body.offsetWidth - 4;
  136.     mainSection.style.top=0;  
  137.     if (document.body.offsetHeight > header.offsetHeight + 10)
  138.         mainSection.style.height= document.body.offsetHeight - (header.offsetHeight + 10);
  139.     else
  140.         mainSection.style.height=0;
  141.     
  142.     try
  143.     {
  144.         mainSection.setActive();
  145.     }
  146.     catch(e)
  147.     {
  148.     }
  149. */
  150. }
  151.  
  152. function Load(key)
  153. {
  154.     userDataCache.load("docSettings");
  155.     var value = userDataCache.getAttribute(key);
  156.     return value;
  157. }
  158.  
  159. function Save(key, value)
  160. {
  161.     userDataCache.setAttribute(key, value);
  162.     userDataCache.save("docSettings");
  163. }
  164.  
  165. function RemoveAttribute(key)
  166. {
  167.     userDataCache.removeAttribute(key);
  168.     userDataCache.save("docSettings");
  169. }
  170.  
  171. function set_to_print()
  172. {
  173.     //breaks out of divs to print
  174.     var i;
  175.  
  176.     if (window.text)document.all.text.style.height = "auto";
  177.             
  178.     for (i=0; i < document.all.length; i++)
  179.     {
  180.         if (document.all[i].tagName == "body")
  181.         {
  182.             document.all[i].scroll = "yes";
  183.         }
  184.         if (document.all[i].id == "header")
  185.         {
  186.             document.all[i].style.margin = "0px 0px 0px 0px";
  187.             document.all[i].style.width = "100%";
  188.         }
  189.         if (document.all[i].id == "mainSection")
  190.         {
  191.             document.all[i].style.overflow = "visible";
  192.             document.all[i].style.top = "5px";
  193.             document.all[i].style.width = "100%";
  194.             document.all[i].style.padding = "0px 10px 0px 30px";
  195.         }
  196.     }
  197. }
  198.  
  199. function reset_form()
  200. {
  201.     //returns to the div nonscrolling region after print
  202.      document.location.reload();
  203. }
  204.  
  205. function IsEvilUrl()
  206. {
  207.     var url = "" + document.location + ".";
  208.     var r = url.indexOf("mk:@MSITStore") != -1;
  209.     return r;
  210. }
  211.  
  212. function IsGoodUrl()
  213. {
  214.     return !IsEvilUrl();
  215. }
  216.  
  217. function ReloadEvilUrlAsGoodUrl()
  218. {
  219.     var url = "" + document.location + ".";
  220.     var i = url.indexOf("mk:@MSITStore");
  221.     if(i != -1)
  222.     {
  223.         url = "ms-its:" + url.substring(14, url.length - 1);
  224.         document.location.replace(url);
  225.     }
  226. }
  227.  
  228. function Set_up_checkboxes()
  229. {
  230.     var checkbox;
  231.     
  232.     checkbox = document.getElementById("vbDeclarationCheckbox");
  233.     if(checkbox != null)
  234.     {
  235.         if(vbDeclaration == "on")
  236.             checkbox.checked = true;
  237.         else
  238.             checkbox.checked = false;
  239.     }
  240.     
  241.     checkbox = document.getElementById("vbUsageCheckbox");
  242.     if(checkbox != null)
  243.     {
  244.         if(vbUsage == "on")
  245.             checkbox.checked = true;
  246.         else
  247.             checkbox.checked = false;
  248.     }
  249.         
  250.     checkbox = document.getElementById("csCheckbox");
  251.     if(checkbox != null)
  252.     {
  253.         if(csLang == "on")
  254.             checkbox.checked = true;
  255.         else
  256.             checkbox.checked = false;
  257.     }
  258.         
  259.     checkbox = document.getElementById("cCheckbox");
  260.     if(checkbox != null)
  261.     {
  262.         if(cLang == "on")
  263.             checkbox.checked = true;
  264.         else
  265.             checkbox.checked = false;
  266.     }
  267.     
  268.     checkbox = document.getElementById("jsharpCheckbox");
  269.     if(checkbox != null)
  270.     {
  271.         if(jsharpLang == "on")
  272.             checkbox.checked = true;
  273.         else
  274.             checkbox.checked = false;
  275.     }
  276.         
  277.     checkbox = document.getElementById("jsCheckbox");
  278.     if(checkbox != null)
  279.     {
  280.         if(jsLang == "on")
  281.             checkbox.checked = true;
  282.         else
  283.             checkbox.checked = false;
  284.     }
  285.     
  286.     checkbox = document.getElementById("inheritedCheckbox");
  287.     if(checkbox != null)
  288.     {
  289.         if(inheritedMembers == "on")
  290.             checkbox.checked = true;
  291.         else
  292.             checkbox.checked = false;
  293.     }
  294.     
  295.     checkbox = document.getElementById("protectedCheckbox");
  296.     if(checkbox != null)
  297.     {
  298.         if(protectedMembers == "on")
  299.             checkbox.checked = true;
  300.         else
  301.             checkbox.checked = false;
  302.     }
  303.     
  304.     checkbox = document.getElementById("netcfCheckbox");
  305.     if(checkbox != null)
  306.     {
  307.         if(netcfMembersOnly == "on")
  308.             checkbox.checked = true;
  309.         else
  310.             checkbox.checked = false;
  311.     }
  312. }
  313.  
  314. /*    
  315. **********
  316. **********   End
  317. **********
  318. */
  319.  
  320.  
  321. /*    
  322. **********
  323. **********   Begin Language Filtering
  324. **********
  325. */
  326.  
  327. function SetLanguage(key)
  328. {
  329.     var i = 0;
  330.     if(vbDeclaration == "on")
  331.         i++;
  332.     if(vbUsage == "on")
  333.         i++;
  334.     if(csLang == "on")
  335.         i++;
  336.     if(cLang == "on")
  337.         i++;
  338.     if(jsharpLang == "on")
  339.         i++;
  340.     if(jsLang == "on")
  341.         i++;
  342.     
  343.     if(key.id == "vbDeclarationCheckbox")
  344.     {
  345.         if(vbDeclaration == "on")
  346.         {
  347.             if(i == 1)
  348.             {
  349.                 key.checked = true;
  350.                 return;
  351.             }
  352.                 
  353.             vbDeclaration = "off";
  354.         }
  355.         else
  356.             vbDeclaration = "on";
  357.     }
  358.     if(key.id == "vbUsageCheckbox")
  359.     {
  360.         if(vbUsage == "on")
  361.         {
  362.             if(i == 1)
  363.             {
  364.                 key.checked = true;
  365.                 return;
  366.             }
  367.                 
  368.             vbUsage = "off";
  369.         }
  370.         else
  371.             vbUsage = "on";
  372.     }
  373.     if(key.id == "csCheckbox")
  374.     {
  375.         if(csLang == "on")
  376.         {
  377.             if(i == 1)
  378.             {
  379.                 key.checked = true;
  380.                 return;
  381.             }
  382.             
  383.             csLang = "off";
  384.         }
  385.         else
  386.             csLang = "on";
  387.     }
  388.     if(key.id == "cCheckbox")
  389.     {
  390.         if(cLang == "on")
  391.         {
  392.             if(i == 1)
  393.             {
  394.                 key.checked = true;
  395.                 return;
  396.             }
  397.                 
  398.             cLang = "off";
  399.         }
  400.         else
  401.             cLang = "on";
  402.     }
  403.     if(key.id == "jsharpCheckbox")
  404.     {
  405.         if(jsharpLang == "on")
  406.         {
  407.             if(i == 1)
  408.             {
  409.                 key.checked = true;
  410.                 return;
  411.             }
  412.                 
  413.             jsharpLang = "off";
  414.         }
  415.         else
  416.             jsharpLang = "on";
  417.     }
  418.     if(key.id == "jsCheckbox")
  419.     {
  420.         if(jsLang == "on")
  421.         {
  422.             if(i == 1)
  423.             {
  424.                 key.checked = true;
  425.                 return;
  426.             }
  427.                 
  428.             jsLang = "off";
  429.         }
  430.         else
  431.             jsLang = "on";
  432.     }
  433.     
  434.     DisplayLanguages();
  435. }
  436.  
  437. function DisplayLanguages()
  438. {
  439.     var spanElements = document.all.tags("span");
  440.     
  441.     var x = 0;
  442.     if(vbDeclaration == "on")
  443.         x++;
  444.     if(vbUsage == "on")
  445.         x++;
  446.     if(csLang == "on")
  447.         x++;
  448.     if(cLang == "on")
  449.         x++;
  450.     if(jsharpLang == "on")
  451.         x++;
  452.     if(jsLang == "on")
  453.         x++;
  454.     
  455.     var i;
  456.     for(i = 0; i < spanElements.length; ++i)
  457.     {
  458.         if(spanElements[i].codeLanguage != null)
  459.         {
  460.             if(spanElements[i].codeLanguage == "VisualBasic")
  461.             {
  462.                 if(vbDeclaration == "on" || vbUsage == "on")
  463.                     spanElements[i].style.display = "";
  464.                 else
  465.                     spanElements[i].style.display = "none";
  466.             }
  467.             if(spanElements[i].codeLanguage == "VisualBasicDeclaration")
  468.             {
  469.                 if(vbDeclaration == "on")
  470.                     spanElements[i].style.display = "";
  471.                 else
  472.                     spanElements[i].style.display = "none";
  473.             }
  474.             if(spanElements[i].codeLanguage == "VisualBasicUsage")
  475.             {
  476.                 if(vbUsage == "on")
  477.                     spanElements[i].style.display = "";
  478.                 else
  479.                     spanElements[i].style.display = "none";
  480.             }
  481.             if(spanElements[i].codeLanguage == "CSharp")
  482.             {
  483.                 if(csLang == "on")
  484.                     spanElements[i].style.display = "";
  485.                 else
  486.                     spanElements[i].style.display = "none";
  487.             }
  488.             if(spanElements[i].codeLanguage == "ManagedCPlusPlus")
  489.             {
  490.                 if(cLang == "on")
  491.                     spanElements[i].style.display = "";
  492.                 else
  493.                     spanElements[i].style.display = "none";
  494.             }
  495.             if(spanElements[i].codeLanguage == "JSharp")
  496.             {
  497.                 if(jsharpLang == "on")
  498.                     spanElements[i].style.display = "";
  499.                 else
  500.                     spanElements[i].style.display = "none";
  501.             }
  502.             if(spanElements[i].codeLanguage == "JScript")
  503.             {
  504.                 if(jsLang == "on")
  505.                     spanElements[i].style.display = "";
  506.                 else
  507.                     spanElements[i].style.display = "none";
  508.             }
  509.             
  510.             if(spanElements[i].codeLanguage == "NotVisualBasicUsage")
  511.             {
  512.                 if((x == 1) && (vbUsage == "on"))
  513.                 {
  514.                     spanElements[i].style.display = "none";
  515.                 }
  516.                 else
  517.                 {
  518.                     spanElements[i].style.display = "";
  519.                 }
  520.             }
  521.         }
  522.     }
  523.     ChangeLanguageFilterLabel();
  524. }
  525.  
  526. function ChangeLanguageFilterLabel()
  527. {    
  528.     var i = 0;
  529.     if(vbDeclaration == "on")
  530.         i++;
  531.     if(vbUsage == "on")
  532.         i++;
  533.     if(csLang == "on")
  534.         i++;
  535.     if(cLang == "on")
  536.         i++;
  537.     if(jsharpLang == "on")
  538.         i++;
  539.     if(jsLang == "on")
  540.         i++;
  541.         
  542.     var labelElement;
  543.     
  544.     labelElement = document.getElementById("showAllLabel");
  545.     
  546.     if(labelElement == null)
  547.         return;
  548.         
  549.     labelElement.style.display = "none";
  550.     
  551.     labelElement = document.getElementById("multipleLabel");
  552.     labelElement.style.display = "none";
  553.     
  554.     labelElement = document.getElementById("vbLabel");
  555.     labelElement.style.display = "none";
  556.     
  557.     labelElement = document.getElementById("csLabel");
  558.     labelElement.style.display = "none";
  559.     
  560.     labelElement = document.getElementById("cLabel");
  561.     labelElement.style.display = "none";
  562.     
  563.     labelElement = document.getElementById("jsharpLabel");
  564.     labelElement.style.display = "none";
  565.     
  566.     labelElement = document.getElementById("jsLabel");
  567.     labelElement.style.display = "none";
  568.     
  569.     if(i == 6)
  570.     {
  571.         labelElement = document.getElementById("showAllLabel");
  572.         labelElement.style.display = "inline";
  573.     }
  574.     else if ((i > 1) && (i < 6))
  575.     {
  576.         if((i == 2) && ((vbDeclaration == "on") && (vbUsage == "on")))
  577.         {
  578.             labelElement = document.getElementById("vbLabel");
  579.             labelElement.style.display = "inline";
  580.         }
  581.         else
  582.         {
  583.             labelElement = document.getElementById("multipleLabel");
  584.             labelElement.style.display = "inline";
  585.         }
  586.     }
  587.     else if (i == 1)
  588.     {
  589.         if(vbDeclaration == "on" || vbUsage == "on")
  590.         {
  591.             labelElement = document.getElementById("vbLabel");
  592.             labelElement.style.display = "inline";
  593.         }
  594.         if(csLang == "on")
  595.         {
  596.             labelElement = document.getElementById("csLabel");
  597.             labelElement.style.display = "inline";
  598.         }
  599.         if(cLang == "on")
  600.         {
  601.             labelElement = document.getElementById("cLabel");
  602.             labelElement.style.display = "inline";
  603.         }
  604.         if(jsharpLang == "on")
  605.         {
  606.             labelElement = document.getElementById("jsharpLabel");
  607.             labelElement.style.display = "inline";
  608.         }
  609.         if(jsLang == "on")
  610.         {
  611.             labelElement = document.getElementById("jsLabel");
  612.             labelElement.style.display = "inline";
  613.         }
  614.     }
  615. }
  616.  
  617. function LoadLanguages()
  618. {
  619.     var value;
  620.     value = Load("vbDeclaration");
  621.     if(value == null)
  622.         vbDeclaration = "on";
  623.     else
  624.         vbDeclaration = value;
  625.         
  626.     value = Load("vbUsage");
  627.     if(value == null)
  628.         vbUsage = "on";
  629.     else
  630.         vbUsage = value;
  631.         
  632.     value = Load("csLang");
  633.     if(value == null)
  634.         csLang = "on";
  635.     else
  636.         csLang = value;
  637.         
  638.     value = Load("cLang");
  639.     if(value == null)
  640.         cLang = "on";
  641.     else
  642.         cLang = value;
  643.     
  644.     value = Load("jsharpLang");
  645.     if(value == null)
  646.         jsharpLang = "on";
  647.     else
  648.         jsharpLang = value;
  649.             
  650.     value = Load("jsLang");
  651.     if(value == null)
  652.         jsLang = "on";
  653.     else
  654.         jsLang = value;
  655. }
  656.  
  657. function SaveLanguages()
  658. {
  659.     Save("vbDeclaration", vbDeclaration);
  660.     Save("vbUsage", vbUsage);
  661.     Save("csLang", csLang);
  662.     Save("cLang", cLang);
  663.     Save("jsharpLang", jsharpLang);
  664.     Save("jsLang", jsLang);
  665. }
  666.  
  667. /*    
  668. **********
  669. **********   End Language Filtering
  670. **********
  671. */
  672.  
  673. /*    
  674. **********
  675. **********   Begin Members Options Filtering
  676. **********
  677. */
  678.  
  679. function SetMembersOptions(key)
  680. {
  681.     if(key.id == "inheritedCheckbox")
  682.     {
  683.         if(key.checked == true)
  684.             inheritedMembers = "on";
  685.         else
  686.             inheritedMembers = "off";
  687.         
  688.         DisplayInheritedMembers();
  689.     }
  690.     if(key.id == "protectedCheckbox")
  691.     {
  692.         if(key.checked == true)
  693.             protectedMembers = "on";
  694.         else
  695.             protectedMembers = "off";
  696.         
  697.         DisplayProtectedMembers();
  698.     }
  699.     if(key.id == "netcfCheckbox")
  700.     {
  701.         if(key.checked == true)
  702.             netcfMembersOnly = "on";
  703.         else
  704.             netcfMembersOnly = "off";
  705.     
  706.         DisplayNETCFMembers();
  707.     }
  708.     
  709.     ChangeMembersOptionsFilterLabel();
  710. }
  711.  
  712. function DisplayInheritedMembers()
  713. {
  714.     var iMembers = document.all.tags("tr");
  715.     var i;
  716.     
  717.     if(inheritedMembers == "off")
  718.     {    
  719.         for(i = 0; i < iMembers.length; ++i)
  720.         {
  721.             if(iMembers[i].name == "inheritedMember")
  722.                 iMembers[i].style.display = "none";
  723.         }
  724.     }
  725.     else
  726.     {
  727.         for(i = 0; i < iMembers.length; ++i)
  728.         {
  729.             if(iMembers[i].name == "inheritedMember")
  730.             {
  731.                 if(netcfMembersOnly == "on")
  732.                 {
  733.                     if(iMembers[i].notSupportedOn == "netcf")
  734.                     {
  735.                         iMembers[i].style.display = "none";
  736.                     }
  737.                     else
  738.                     {
  739.                         iMembers[i].style.display = "";
  740.                     }
  741.                 }
  742.                 else
  743.                     iMembers[i].style.display = "";
  744.             }
  745.         }
  746.     }
  747. }
  748.  
  749. function DisplayProtectedMembers()
  750. {
  751.     var imgElements = document.getElementsByName("toggleSwitch");
  752.     var i;
  753.     
  754.     if(protectedMembers == "off")
  755.     {
  756.         for(i = 0; i < imgElements.length; ++i)
  757.         {
  758.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  759.             {
  760.                 if(ItemCollapsed(imgElements[i].id) == false)
  761.                 {
  762.                     ExpandCollapse(imgElements[i]);
  763.                 }
  764.             }
  765.         }
  766.     }
  767.     else
  768.     {
  769.         for(i = 0; i < imgElements.length; ++i)
  770.         {
  771.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  772.             {
  773.                 if(ItemCollapsed(imgElements[i].id) == true)
  774.                 {
  775.                     ExpandCollapse(imgElements[i]);
  776.                 }
  777.             }
  778.         }
  779.     }
  780.         
  781. }
  782.  
  783. function DisplayNETCFMembers()
  784. {
  785.     var netcfMembers = document.all.tags("tr");
  786.     var i;
  787.     
  788.     if(netcfMembersOnly == "off")
  789.     {    
  790.         for(i = 0; i < netcfMembers.length; ++i)
  791.         {
  792.             if(netcfMembers[i].notSupportedOn == "netcf")
  793.             {
  794.                 netcfMembers[i].style.display = "";
  795.             }
  796.         }
  797.         DisplayInheritedMembers();
  798.     }
  799.     else
  800.     {
  801.         for(i = 0; i < netcfMembers.length; ++i)
  802.         {
  803.             if(netcfMembers[i].notSupportedOn == "netcf")
  804.             {
  805.                 netcfMembers[i].style.display = "none";
  806.             }
  807.         }
  808.     }
  809. }
  810.  
  811. function ChangeMembersOptionsFilterLabel()
  812. {    
  813.  
  814.     var filtered = false;
  815.     
  816.     if((inheritedMembers=="off") || (protectedMembers=="off") || (netcfMembersOnly=="on"))
  817.         filtered = true;
  818.         
  819.     var labelElement;
  820.     
  821.     labelElement = document.getElementById("showAllMembersLabel");
  822.     
  823.     if(labelElement == null)
  824.         return;
  825.         
  826.     labelElement.style.display = "none";
  827.     
  828.     labelElement = document.getElementById("filteredMembersLabel");
  829.     labelElement.style.display = "none";
  830.     
  831.     if(filtered)
  832.     {
  833.         labelElement = document.getElementById("filteredMembersLabel");
  834.         labelElement.style.display = "inline";
  835.     }
  836.     else
  837.     {
  838.         labelElement = document.getElementById("showAllMembersLabel");
  839.         labelElement.style.display = "inline";
  840.     }
  841. }
  842.  
  843. function LoadMembersOptions()
  844. {
  845.     var value;
  846.     value = Load("inheritedMembers");
  847.     if(value == null)
  848.         inheritedMembers = "on";
  849.     else
  850.         inheritedMembers = value;
  851.         
  852.     value = Load("protectedMembers");
  853.     if(value == null)
  854.         protectedMembers = "on";
  855.     else
  856.         protectedMembers = value;
  857.         
  858.     value = Load("netcfMembersOnly");
  859.     if(value == null)
  860.         netcfMembersOnly = "off";
  861.     else
  862.         netcfMembersOnly = value;
  863. }
  864.  
  865. function SaveMembersOptions()
  866. {
  867.     Save("inheritedMembers", inheritedMembers);
  868.     Save("protectedMembers", protectedMembers);
  869.     Save("netcfMembersOnly", netcfMembersOnly);
  870. }
  871.  
  872. /*    
  873. **********
  874. **********   End Members Options Filtering
  875. **********
  876. */
  877.  
  878.  
  879. /*    
  880. **********
  881. **********   Begin Expand/Collapse
  882. **********
  883. */
  884.  
  885. var collapsedItems = new Array();
  886.  
  887. function ExpandCollapse(imageItem)
  888. {
  889.     if(ItemCollapsed(imageItem.id) == true)
  890.     {
  891.         imageItem.src = collapseImage.src;
  892.         ExpandSection(imageItem);
  893.         RemoveCollapsedItem(imageItem.id);
  894.         
  895.         if(imageItem.id.indexOf("Family", 0) == 0)
  896.         {
  897.             protectedMembers = "on";
  898.             Set_up_checkboxes();
  899.             ChangeMembersOptionsFilterLabel();
  900.         }
  901.     }
  902.     else
  903.     {
  904.         imageItem.src = expandImage.src;
  905.         CollapseSection(imageItem);
  906.         AddCollapsedItem(imageItem.id);
  907.     }
  908.     
  909.     SetCollapseAll();
  910. }
  911.  
  912. function ExpandCollapseAll(imageItem)
  913. {
  914.     var imgElements = document.getElementsByName("toggleSwitch");
  915.     var i;
  916.     
  917.     if(ItemCollapsed(imageItem.id) == true)
  918.     {
  919.         imageItem.src = collapseAllImage.src;
  920.         RemoveCollapsedItem(imageItem.id);
  921.         for(i = 0; i < imgElements.length; ++i)
  922.         {
  923.             imgElements[i].src = collapseImage.src;
  924.             ExpandSection(imgElements[i]);
  925.             RemoveCollapsedItem(imgElements[i].id);
  926.             
  927.             if(imgElements[i].id.indexOf("Family", 0) == 0)
  928.                 protectedMembers = "on";
  929.         }
  930.         SetToggleAllLabel(false);
  931.     }
  932.     else
  933.     {
  934.         imageItem.src = expandAllImage.src;
  935.         AddCollapsedItem(imageItem.id);
  936.         for(i = 0; i < imgElements.length; ++i)
  937.         {
  938.             imgElements[i].src = expandImage.src;
  939.             CollapseSection(imgElements[i]);
  940.             AddCollapsedItem(imgElements[i].id);
  941.         }
  942.         SetToggleAllLabel(true);
  943.     }
  944. }
  945.  
  946. function ExpandCollapse_CheckKey(imageItem)
  947. {
  948.     if(window.event.keyCode == 13)
  949.         ExpandCollapse(imageItem);
  950. }
  951.  
  952. function ExpandCollapseAll_CheckKey(imageItem)
  953. {
  954.     if(window.event.keyCode == 13)
  955.         ExpandCollapseAll(imageItem);
  956. }
  957.  
  958. function ExpandSection(imageItem)
  959. {
  960.     imageItem.parentElement.parentElement.nextSibling.style.display    = "";
  961. }
  962.  
  963. function CollapseSection(imageItem)
  964. {
  965.     imageItem.parentElement.parentElement.nextSibling.style.display    = "none";
  966. }
  967.  
  968. function SetCollapseAll()
  969. {
  970.     var imageElement = document.getElementById("toggleAllImage");
  971.     
  972.     if(imageElement == null)
  973.         return;
  974.         
  975.     var imgElements = document.getElementsByName("toggleSwitch");
  976.     var allCollapsed = true;
  977.     var i;
  978.         
  979.     for(i = 0; i < imgElements.length; ++i)
  980.     {
  981.         allCollapsed = allCollapsed && ItemCollapsed(imgElements[i].id)
  982.     }
  983.     
  984.     if(allCollapsed)
  985.     {
  986.         imageElement.src = expandAllImage.src;
  987.         AddCollapsedItem(imageElement.id);
  988.     }
  989.     else
  990.     {
  991.         imageElement.src = collapseAllImage.src;
  992.         RemoveCollapsedItem(imageElement.id);
  993.     }
  994.     
  995.     SetToggleAllLabel(allCollapsed);
  996. }
  997.  
  998. function SetToggleAllLabel(allCollapsed)
  999. {
  1000.     var labelElement;
  1001.     labelElement = document.getElementById("collapseAllLabel");
  1002.     
  1003.     if(labelElement == null)
  1004.         return;
  1005.         
  1006.     labelElement.style.display = "none";
  1007.     
  1008.     labelElement = document.getElementById("expandAllLabel");
  1009.     labelElement.style.display = "none";
  1010.     
  1011.     if(allCollapsed)
  1012.     {
  1013.         labelElement = document.getElementById("expandAllLabel");
  1014.         labelElement.style.display = "inline";
  1015.     }
  1016.     else
  1017.     {
  1018.         labelElement = document.getElementById("collapseAllLabel");
  1019.         labelElement.style.display = "inline";
  1020.     }
  1021. }
  1022.  
  1023. function ItemCollapsed(imageId)
  1024. {
  1025.     var i;
  1026.     
  1027.     for(i = 0; i < collapsedItems.length; ++i)
  1028.     {
  1029.         if(imageId == collapsedItems[i])
  1030.             return true;
  1031.     }
  1032.     
  1033.     return false;
  1034. }
  1035.  
  1036. function AddCollapsedItem(imageId)
  1037. {    
  1038.     if(ItemCollapsed(imageId) == false)
  1039.         collapsedItems[collapsedItems.length] = imageId;
  1040. }
  1041.  
  1042. function RemoveCollapsedItem(imageId)
  1043. {
  1044.     var i;
  1045.     
  1046.     for(i = 0; i < collapsedItems.length; ++i)
  1047.     {
  1048.         if(imageId == collapsedItems[i])
  1049.             collapsedItems.splice(i, 1);
  1050.     }
  1051. }
  1052.  
  1053. function SaveSections()
  1054. {
  1055.     var i;
  1056.     var x = 0;
  1057.     
  1058.     CleanUserDataStore();
  1059.     
  1060.     for(i = 0; i < collapsedItems.length; ++i)
  1061.     {
  1062.         if(ShouldSave(collapsedItems[i]) == true)
  1063.         {
  1064.             Save("imageValue" + x, collapsedItems[i]);
  1065.             x++;
  1066.         }
  1067.     }
  1068. }
  1069.  
  1070. function LoadSections()
  1071. {
  1072.     var i = 0;
  1073.     var imageId = Load("imageValue" + i);
  1074.     
  1075.     while(imageId != null)
  1076.     {
  1077.         var imageItem = document.getElementById(imageId);
  1078.         
  1079.         if(imageItem != null)
  1080.         {
  1081.             if(imageItem.id.indexOf("Family", 0) == 0)
  1082.             {
  1083.                 if(protectedMembers == "on")
  1084.                 {
  1085.                     ExpandCollapse(imageItem);
  1086.                 }
  1087.             }
  1088.             else
  1089.                 ExpandCollapse(imageItem);
  1090.         }
  1091.         else
  1092.         {
  1093.             AddCollapsedItem(imageId);
  1094.         }
  1095.     
  1096.         i++;
  1097.         imageId = Load("imageValue" + i);
  1098.     }
  1099.     
  1100.     SetCollapseAll();
  1101. }
  1102.  
  1103. function CleanUserDataStore()
  1104. {
  1105.     var i = 0;
  1106.     var imageId = Load("imageValue" + i);
  1107.     
  1108.     while(imageId != null)
  1109.     {
  1110.         RemoveAttribute("imageValue" + i);
  1111.         i++;
  1112.         imageId = Load("imageValue" + i);
  1113.     }
  1114. }
  1115.  
  1116. function ShouldSave(imageId)
  1117. {
  1118.     var toggleName;
  1119.     
  1120.     if(imageId == "toggleAllImage")
  1121.         return false;
  1122.     
  1123.     toggleName = "procedureToggle";
  1124.     if(imageId.indexOf(toggleName, 0) == 0)
  1125.         return false;
  1126.         
  1127.     toggleName = "sectionToggle";
  1128.     if(imageId.indexOf(toggleName, 0) == 0)
  1129.         return false;
  1130.     
  1131.     return true;
  1132. }
  1133.  
  1134. function OpenSection(imageItem)
  1135. {
  1136.     if(ItemCollapsed(imageItem.id) == true)
  1137.         ExpandCollapse(imageItem);
  1138. }
  1139.  
  1140. /*    
  1141. **********
  1142. **********   End Expand/Collapse
  1143. **********
  1144. */
  1145.  
  1146.  
  1147.  
  1148. /*    
  1149. **********
  1150. **********   Begin Copy Code
  1151. **********
  1152. */
  1153.  
  1154. function CopyCode(key)
  1155. {
  1156.     var trElements = document.all.tags("tr");
  1157.     var i;
  1158.     for(i = 0; i < trElements.length; ++i)
  1159.     {
  1160.         if(key.parentElement.parentElement.parentElement == trElements[i].parentElement)
  1161.         {
  1162.             window.clipboardData.setData("Text", trElements[i].innerText);
  1163.         }
  1164.     }
  1165. }
  1166.  
  1167. function ChangeCopyCodeIcon(key)
  1168. {
  1169.     var i;
  1170.     var imageElements = document.getElementsByName("ccImage")
  1171.     for(i=0; i<imageElements.length; ++i)
  1172.     {
  1173.         if(imageElements[i].parentElement == key)
  1174.         {
  1175.             if(imageElements[i].src == copyImage.src)
  1176.                 imageElements[i].src = copyHoverImage.src;
  1177.             else
  1178.                 imageElements[i].src = copyImage.src;
  1179.         }
  1180.     }
  1181. }
  1182.  
  1183. function CopyCode_CheckKey(key)
  1184. {
  1185.     if(window.event.keyCode == 13)
  1186.         CopyCode(key);
  1187. }
  1188.  
  1189. /*    
  1190. **********
  1191. **********   End Copy Code
  1192. **********
  1193. */
  1194.  
  1195.  
  1196. /*    
  1197. **********
  1198. **********   Begin Maintain Scroll Position
  1199. **********
  1200. */
  1201.  
  1202. function loadAll(){
  1203.     try 
  1204.     {
  1205.         scrollPos = allHistory.getAttribute("Scroll");
  1206.     }
  1207.     catch(e){}
  1208. }
  1209.  
  1210. function saveAll(){
  1211.     try
  1212.     {
  1213.         allHistory.setAttribute("Scroll", mainSection.scrollTop);
  1214.     }
  1215.     catch(e){}
  1216. }
  1217.  
  1218. /*    
  1219. **********
  1220. **********   End Maintain Scroll Position
  1221. **********
  1222. */
  1223.  
  1224.  
  1225. /*    
  1226. **********
  1227. **********   Begin Send Mail
  1228. **********
  1229. */
  1230.  
  1231. function formatMailToLink(anchor)
  1232. {
  1233.     var release = "Release: " + anchor.doc_Release;
  1234.     var topicId = "Topic ID: " + anchor.doc_TopicID;
  1235.     var topicTitle = "Topic Title: " + anchor.doc_TopicTitle;
  1236.     var url = "URL: " + document.URL;
  1237.     var browser = "Browser: " + window.navigator.userAgent;
  1238.  
  1239.     var crlf = "%0d%0a"; 
  1240.     var body = release + crlf + topicId + crlf + topicTitle + crlf + url + crlf + browser + crlf + crlf + "Comments:" + crlf + crlf;
  1241.     
  1242.     anchor.href = anchor.href + "&body=" + body;
  1243. }
  1244.  
  1245. /*    
  1246. **********
  1247. **********   End Send Mail
  1248. **********
  1249. */
  1250.  
  1251.  
  1252.  
  1253.